package com.peanut.bosskg.entity.invoice;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.peanut.bosskg.util.StringUtils;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

/**
 * 查询开票结果返回实体
 *
 * @Author :  peanut
 * @Created : 2020/11/23 下午11:16
 */
@Data
public class QueryInvoiceResultResponseDTO implements Serializable {
    private static final long serialVersionUID = -1L;
    /**
     * 落地服务公司ID
     **/
    @JsonSerialize(using = ToStringSerializer.class)
    private Long providerId;
    /**
     * 发票ID
     **/
    @JsonSerialize(using = ToStringSerializer.class)
    private Long invoiceApplyNo;
    /**
     * 发票类目
     **/
    @JsonSerialize(using = ToStringSerializer.class)
    private Long invoiceType;

    /**
     * 发票类型(1.专票  2.普票)
     **/
    @JsonSerialize(using = ToStringSerializer.class)
    private String category;

    /**
     * 申请开票金额（单位：分）
     **/
    @JsonSerialize(using = ToStringSerializer.class)
    private Long amt;

    /**
     * 申请开票备注
     **/
    private String invoiceMemo;
    /**
     * 快递收件人员默认是系统中录入
     **/
    private String contact;
    /**
     * 快递电话默认是系统中录入
     **/
    private String mobile;
    /**
     * 快递地址默认是系统中录入
     **/
    private String postAddress;

    /**
     * 发票申请时间
     **/
    private String createTime;

    /**
     * 开票成功时间
     **/
    private String billSuccessTime;

    /**
     * 发票状态 （0开票中，1已开票，2已拒绝，3已废弃，4已寄出）
     **/
    private String state;
    /**
     * 发票号码
     **/
    private String invoiceNum;
    /**
     * 发票代码
     **/
    private String invoiceCode;
    /**
     * 发票图片
     **/
    private String invoiceFileList;

    /**
     * 快递公司编码
     **/
    private String expressId;
    /**
     * 快递单号
     **/
    private String trackNo;

    @Getter
    @Setter
    public static class InvoiceFile {
        /**
         * 发票id
         **/
        private String pictureId;
        /**
         * 发票内容
         **/
        private String invoicePicture;

        @Override
        public String toString() {
            return "InvoiceFile{" +
                    "pictureId=" + pictureId +
                    ", invoicePicture='" + StringUtils.cutLongString(invoicePicture, 30) + '\'' +
                    '}';
        }
    }

}
